let dict = {
  SETTING: {
    OPEN_PERMISSION: true, //是否开启权限
    API_URL: '/seer/', //API具体路径
    AREA_CODE: 131000
  },
  // 货币单位统一管理
  CURRENCY: {
    1: 'XIN',             // 货币类型1：XIN
    5: 'XING',            // 货币类型5：XING
    8: '徽章',            // 货币类型8：徽章
    XIN: 'XIN',           // 官方商店货币（已弃用）
    XIN_BEAN: 'XIN豆',    // 交易市场货币
    BADGE: '徽章',        // 官方商店货币（新）
    SYMBOL: {
      1: ' XIN',
      5: ' XING',
      8: ' 徽章',
      XIN: ' XIN',
      XIN_BEAN: ' XIN豆',
      BADGE: ' 徽章'
    }
  },
}
//生产环境使用/index.html引用的setting.js
if (!import.meta.env.DEV && window.ADMIN_SETTING) {
  Object.assign(dict.SETTING, window.ADMIN_SETTING)
}
for (let key in dict) {
  if (key != 'SETTING') {
    makeDict(dict[key])
  }
}
export function makeDict(obj, labelKey = 'label', valueKey = 'value') {
  return Object.defineProperties(obj, {
    valueKey: {
      value: valueKey
    },
    labelKey: {
      value: labelKey
    },
    get: {
      value: get
    },
    getLabel: {
      value: getLabel
    }
  })
}
function get(val) {
  if (Array.isArray(val)) {
    val = val.map((item) => item.toString())
    return this.filter((item) => {
      return val.includes(item[this.valueKey].toString())
    })
  }
  return (
    this.find((item) => {
      return item[this.valueKey] == val
    }) || {}
  )
}
function getLabel(val) {
  if (Array.isArray(val)) {
    return this.get(val).map((item) => {
      return item[this.labelKey]
    })
  }
  return this.get(val)[this.labelKey]
}
export default dict
